package com.mr.service;

import java.util.Date;
import java.util.List;

import com.mr.model.BaseInfo;
import com.mr.model.Discount;
import com.mr.model.Goods;
import com.mr.model.GoodsOrder;
import com.mr.model.News;
import com.mr.model.Plan;
import com.mr.model.Point;
import com.mr.model.Proxy;
import com.mr.model.QQInfo;
import com.mr.model.SearchCommand;
import com.mr.model.Shop;
import com.mr.model.User;
import com.mr.model.Video;
import com.mr.model.WillCS;

public interface CommonService extends BaseService {
	BaseInfo getBaseInfo(Long memberid);
	
	//�û�
	Integer getUserCount(Long csid, SearchCommand command, String status);
	List<User> getUserList(Long csid, SearchCommand command, String status, Integer from, Integer maxnum);
	
	//����
	Integer getNewsCount(Long relatedid, String name, String status);
	List<News> getNewsList(Long relatedid, String name, String status, Integer from, Integer maxnum);
	Integer getNewsCount(BaseInfo base, String name, String status);
	List<News> getNewsList(BaseInfo base, String name, String status, Integer from, Integer maxnum);
	
	//��Ƶ
	Integer getVideoCount(Long relatedid, String name, String status);
	List<Video> getVideoList(Long relatedid, String name, String status, Integer from, Integer maxnum);
	
	//�Ż�
	Integer getDiscountCount(Long relatedid, String name, Date startdate, Date enddate, String status);
	List<Discount> getDiscountList(Long relatedid, String name, Date startdate, Date enddate, String status, Integer from, Integer maxnum);
	Integer getDiscountCount(BaseInfo base, String name, Date startdate, Date enddate, String status); 
	List<Discount> getDiscountList(BaseInfo base, String name, Date startdate, Date enddate, String status, Integer from, Integer maxnum);
	//��Ʒ
	Integer getGoodsCount(Long relatedid, Long typeid, String name, String status);
	List<Goods> getGoodsList(Long relatedid, Long typeid, String name, String status, Integer from, Integer maxnum);
	Integer getGoodsCount(BaseInfo base, Long typeid, String name, String status);
	List<Goods> getGoodsList(BaseInfo base, Long typeid, String name, String status, Integer from, Integer maxnum);
	
	//����
	Integer getOrderCount(Long memberid, Long goodsid, String name, String status);
	List<GoodsOrder> getOrderList(Long memberid, Long goodsid, String name, String status, Integer from, Integer maxnum);
	
	//��Ʒ
	Integer getPointCount(Long memberid);
	List<Point> getPointList(Long memberid, Integer from, Integer maxnum);
	void addPoint(Long userid, Long shopid, Integer point, String reason);
	//���?˾
	Integer getProxyCount(SearchCommand command);
	List<Proxy> getProxyList(SearchCommand command, Integer from, Integer maxnum);
	
	//���۵�
	Integer getShopCount(Long proxyid, SearchCommand command, String status);
	List<Shop> getShopList(Long proxyid, SearchCommand command, String status, Integer from, Integer maxnum);
	
	List<QQInfo> getQQInfoList(Long relatedid);
	
	Integer getPlanCount(Long relatedid, String name, String status);
	List<Plan> getPlanList(Long relatedid, String name, String status, Integer from, Integer maxnum);
	
	Integer getWillCSCount(String willtype, Long relatedid, SearchCommand command);
	List<WillCS> getWillCSList(String willtype, Long relatedid, SearchCommand command, Integer from, Integer maxnum);

}
